Conversation
📝 WalkthroughWalkthroughデータベーススキーマの管理マイグレーションを更新および追加しています。反応テーブルのインデックス定義を簡潔な形式に変更し、映画テーブルから tag_list と practice 参照を削除してユーザー関連を nullable に変更し、プラクティステーブルに source_id インデックスと自己参照外部キー制約を新規追加しています。 Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related issues
Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@matuaya |
|
@ryufuta |
matuaya
left a comment
There was a problem hiding this comment.
とても遅れてしまい大変申し訳ありません🙇♀️💦
確認しましたのでApproveさせていただきます!
Issue
概要
本番環境に適用後に不適切に修正されたマイグレーションファイルを修復してスキーマファイル(および本番環境のDBスキーマ)との不整合を解消した。
詳細はIssueを参照。
変更確認方法
UI、振る舞い、ロジックの変更はない。
修復したマイグレーションファイルのファイル名が変更されていないこと(削除したのを復元したファイルについては削除前とファイル名が同じであること)を確認する。
(ファイル名のプレフィックスが変更されていると本番環境へのデプロイ時にマイグレーションファイルが誤って再適用されるため変更されていないことが重要)
本PRで言及している3つのsub-issueに記載しているスキーマファイル-マイグレーションファイル間の不整合が解消されていることを以下の手順で確認する。
chore/restore-migration-filesをローカルに取り込むdb/schema.rbに3つのsub-issueに記載している変更が生じていないことを確認する※確認後は以下の手順でローカルのDBをあるべき状態に戻す。
git restore .で変更を戻すbin/rails db:resetを実行する注意
この開発ブランチでアプリを起動する場合は
bin/rails db:resetをこのブランチで先に実行する必要がある。以下理由。
おそらくローカルのDBに復元した2つのマイグレーションファイル(
20250618142946_add_index_on_source_id_to_practices.rbと20250618144325_add_foreign_key_to_practices_source_id.rb)の適用履歴がない(bin/rails db:migrate:statusを実行すると2つのファイルがdownになっている)。そのため
bin/rails db:migrateを実行しないとローカルでアプリを起動できない。しかし、マイグレーションの内容はDBに既に反映されている(ローカルではスキーマファイルを元にDBを作成するがスキーマファイルにその内容が反映済み)ためマイグレーションに失敗する。
bin/rails db:resetを実行してスキーマファイルを元にDBを作成し直す(同時にマイグレーションファイルをすべて適用済みにする)ことでアプリを起動できるようになる。本番環境ではマイグレーションファイル削除後も適用履歴が残っているので同じマイグレーションが再適用されることはなく問題ない。
Summary by CodeRabbit
リリースノート
✏️ Tip: You can customize this high-level summary in your review settings.